/*
* gulp 插件例子
**/

// through2 是一个对 node 的 transform streams 简单封装
var through = require('through2');
var gutil = require('gulp-util');
var PluginError = gutil.PluginError;

// 常量
const PLUGIN_NAME = 'gulp-prefixer';


function makrdownHead (markdown) {
  var vars = {}
  var regfix = makrdownHead.regfix === 'string' ? makrdownHead.regfix : '---'
  var reg = new RegExp(regfix + '([\\w\\W\\r\\n]*?)' + regfix)
  var result = markdown.match(reg)
  if (result) {
    var hash = result[1].match(/(\r\n)?.+/g).map(e => {
      return e.split(':')
    })
    for (var i in hash) {
      vars[hash[i][0].replace(/[\W\r\n]/g, '')] = hash[i][1].trim()
    }
  }
  return vars
}
makrdownHead.rmHead = function (markdown) {
  var regfix = makrdownHead.regfix === 'string' ? makrdownHead.regfix : '---'
  return markdown.replace(new RegExp('\\r\\n' + regfix + '([\\w\\W\\r\\n]*?)' + regfix + '\\r\\n'), '')
}



// 插件级别函数 (处理文件)
function gulpTest() {

  /*if (!prefixText) {
    throw new PluginError(PLUGIN_NAME, 'Missing prefix text!');
  }*/
  console.log("xxx")
  // 创建一个让每个文件通过的 stream 通道
  return through.obj(function(file, enc, cb) {
    var markdown = file.contents.toString()
    console.log(makrdownHead(markdown))
    file.contents = new Buffer(makrdownHead.rmHead(markdown));
    cb(null, file);

  });

};

// 暴露（export）插件主函数
module.exports = gulpTest;